Чисельне інтегрування

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКНІ
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2008
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Чисельні методи в інформатиці

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА" Інститут ІКНІ Кафедра ПЗ ЗВІТ до лабораторної роботи № 4 На тему: “ Чисельне інтегрування ” З дисципліни: “ Чисельні методи в інформатиці ” Мета роботи: навчитись обчислювати інтеграли за формулами трапецій, Сімпсона та Монте-Карло. Теоретичні відомості Нехай треба обчислити визначений інтеграл:  . (4.5.1) Розіб’ємо відрізок [a,b] на N кроків інтегрування рівномірно. Величина кроку буде дорівнювати: h = (b-a)/N . Значення функції у вузлових точках означимо як  де  . Наближене (але з будь-якою точністю) значення інтегралу можна отримати за допомогою формули трапецій:  (4.5.2) або формули Симпсона:  . (4.5.3) Із зменшенням величини кроку h точність обчислення інтеграла збільшується. Обчислення інтегралів методом Монте-Карло Нехай x1, x2, ...,xM – множина випадкових величин з відрізка [a,b] таких, що мають рівномірне розподілення. Тоді інтеграл (4.5.1) можна наближено обчислити по формулі:  (4.5.4) Точність обчислення інтегралу збільшується із збільшенням M і з покращанням якості випадкової послідовності. Переваги методу Монте-Карло особливо помітні при обчисленні кратних інтегралів. Нехай потрібно обчислити інтеграл кратності p такого виду:  . (4.5.5) Область інтегрування є p-вимірний паралелепіпед:  Оберемо у ньому N рівномірно розподілених випадкових точок . Наближене значення інтегралу можна отримати за допомогою такої формули:  . (4.5.6) Завдання Обчислити значення інтегралу за формулами трапецій, Сімпсона та Монте-Карло.  Текст програми unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, XPMan, ExtCtrls; type TForm1 = class(TForm) Edit1: TEdit; Label1: TLabel; Button1: TButton; GroupBox1: TGroupBox; XPManifest1: TXPManifest; Edit2: TEdit; Edit3: TEdit; Label2: TLabel; Label3: TLabel; Edit4: TEdit; Label4: TLabel; Image1: TImage; Bevel1: TBevel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; e:real; n:integer; const a : integer = 0; const b : integer = 4; implementation {$R *.dfm} function AbsReal(X : Extended):Extended; begin if X>=0 then Result:=X else Result:=-X; end; function f(x : real ): real; begin result:=(1+2*x)/(sqr(ln(2+sqr(x)))); end; function IntegralTrapezium(const a : Double; const b : Double; const Epsilon : Double):Double; var i : Integer; n : Integer; h : Double; s1 : Double; s2 : Double; begin n := 1; h := b-a; s2 := h*(F(a)+F(b))/2; repeat s1 := s2; s2 := 0; i := 1; repeat s2 := s2+F(a-h/2+h*i); i := i+1; until not (i<=n); s2 := s1/2+s2*h/2; n := 2*n; h := h/2; until not (AbsReal(s2-s1)>3*Epsilon); Result := s2; end; function IntegralSimpson(const a : Double; const b : Double; const Epsilon : Double):Double; var i : Integer; n : Integer; h : Double; s : Double; s1 : Double; s2 : Double; s3 : Double; x : Double; begin s2 := 1; h := b-a; s := F(a)+F(b); repeat s3 := s2; h := h/2; s1 := 0; x := a+h; repeat s1 := s1+2*F(x); x := x+2*h; until not (x<b); s := s+s1; s2 := (s+s1)*h/3; x := AbsReal(s3-s2)/15; until not (x>Epsilon); Result := s2; end; function fMonte_Karlo: real; var y,x:real; i,l,h:integer; begin n:=100; randomize(); y:=0; for i:=1 to n do begin l:=Random(b); h:=Random(100); ...
Антиботан аватар за замовчуванням

31.03.2013 16:03

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини